﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.UI.Common;
using Sinacor.Infra.Common;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
	public class OrdemToIncluirOrdemRequest : BaseTranslator<Bovespa.Ordens.Ordem.IncluirOrdemRequest, Model.Ordem,
                                                List<Bovespa.Ordens.Ordem.IncluirOrdemRequest>, List<Model.Ordem>>{
		public override Bovespa.Ordens.Ordem.IncluirOrdemRequest Translate(Model.Ordem from)
        {

            /*if(from == null){
                return null;
            }
                           
            Bovespa.Ordens.Ordem.IncluirOrdemRequest to  = new Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem.IncluirOrdemRequest();

            //TORMOVD - na mesma ordem da tabela - eduardo - 20080120*
            to.Situacao = from.Situacao; //IN_SITUAC
            to.CodigoUsuarioOrdem = from.CodigoUsuarioOrdem; //CD_CODUSU
            to.Bolsa = from.Bolsa; //CD_BOLSA
            to.DataOrdem = Convert.ToDateTime(from.DataOrdem); //DT_DATORD //CHAVE-3.1
            to.NumeroOrdem = from.NumeroOrdem; //NR_SEQORD //CHAVE-3.2
            to.NumeroOrdemSequencia = Convert.ToInt32(from.NumeroOrdemSequencia); //NR_SUBSEQ //CHAVE-3.3
            to.HoraOrdem = from.HoraOrdem; //DT_HORORD
            
            if(from.TipoOrdem != null){
                to.TipoOrdem = new List<EnumWrapper<Sinacor.UI.Bovespa.Ordens.Model.Enum.TipoOrdem>>();
                foreach(Model.Enum.TipoOrdem itemTipoOrdem in from.TipoOrdem){
                    to.TipoOrdem.Add(itemTipoOrdem);
                } //TP_ORDEM
            }
            
            if(from.TipoMercado != null){
                to.TipoMercado = (Model.Enum.TipoMercado)from.TipoMercado; //CD_MERCAD
            }
            
            to.Quantidade = from.Quantidade; //QT_ORDEM
            to.Titulo = from.Titulo; //CD_NEGOCIO
            to.CodigoCliente = from.CodigoCliente; //CD_CLIENTE
            to.DigitoCliente = from.DigitoCliente; //DV_CLIENTE*
            to.CodigoBroker = from.CodigoBroker; //CD_LIQFIN*
            to.IndicadorPessoaVinculada = from.IndicadorPessoaVinculada; //IN_PESVIN
            
            if(from.NaturezaOperacao != null){
                to.NaturezaOperacao = (Model.Enum.TipoNaturezaOperacao)from.NaturezaOperacao; //CD_NATOPE
            }
            
            to.Preco = from.Preco; //VL_PREPAP
            to.TipoFax = from.TipoFax; //TP_DOCFAX //incluido/descomentado - eduardo - 20080119
            to.PercentualReducaoAcrescimo = from.PercentualReducaoAcrescimo; //PC_REDACR
            to.QuantidadeCasada = from.QuantidadeCasada; //QT_ORDEXEC
            to.CodigoCarteira = from.CodigoCarteira; //CD_CARLIQ*
            to.IndicadorLiquidacao = from.IndicadorLiquidacao; //IN_LIQUIDA*
            to.DataValidade = from.DataValidade; //DT_VALORD
            to.IndicadorDistribuicao = from.IndicadorDistribuicao; //IN_DISTRIB*
            to.NomeCliente = from.NomeCliente; //NM_CLIENTE
            //to.IndicadorChamadaLog = from.IndicadorChamadaLog; //IN_TRIGGER*
            to.TaxaFinanciamento = from.TaxaFinanciamento; //PC_FINANC*
            to.ValorFinanciado = from.ValorFinanciado;//VL_FINANC*
            to.VencimentoTermo = from.VencimentoTermo; //TP_VCOTER*
            //to.IndicadorDesprezaSaldo = from.IndicadorDesprezaSaldo; //IN_DESSALDO*
            to.NomeEmissorOrdem = from.NomeEmissorOrdem; //NM_EMIT_ORDEM*
            //to.CodigoCasamento = from.CodigoCasamento; //CD_CODCAS*
            to.QuantidadeAnexo5 = from.QuantidadeAnexo5; //QT_ANEXO5*
            to.QuantidadeAnexo4 = from.QuantidadeAnexo4; //QT_ANEXO4*
            to.Cambio = from.Cambio; //VL_DOLAR*
            //to.IndicadorOrdemFilaCasamento = from.IndicadorOrdemFilaCasamento; //IN_CASAORD*
            to.IndicadorOrdemAbertaAdminCon = from.IndicadorOrdemAbertaAdminCon; //IN_ADMIN_CON*
            to.NumeroOrdemOriginal = from.NumeroOrdemOriginal; //NR_SEQORD_ORI*

            //extras
            //to.LoginOperador = from.LoginOperador;
            //to.Saldo = from.Saldo;
            //to.ApelidoCliente = from.ApelidoCliente; //NM_APELIDO
            to.VencimentoTermo = from.VencimentoTermo;
            to.Bolsa = from.Bolsa;
            //to.IndicadorDisparaTrigger = from.IndicadorDisparaTrigger;
            //to.IndicadorExterno = from.IndicadorExterno;
            //to.IndicadorFOP = from.IndicadorFOP;
            //to.valorDolar = from.valorDolar;
            //to.PercentualFinanciado = from.PercentualFinanciado;
            //to.OrdemMegaBolsa = from.OrdemMegaBolsa;
                
            
            return to;*/
            return null;
        }
	}
}
